export interface BlogVo {
  id: number;
  title: string;
  excerpt: string;
  views?: number;
  likes?: number;
  tags: string[] | string;
  categoryId?: number;
  categoryName?: string;
  coverImage: string;
  createdAt: String;
}
export interface HotArticlesVo {
  id: number;
  title: string;
  coverImage: string;
}
export interface RecentArticlesVo {
  id: number;
  title: string;
  views: number;
  comments: number;
  author: string;
  category: string;
  coverImage: string;
  createdAt: string;
}

export interface CategoryVo {
  id: number;
  name: string;
  articleCount: number;
}

export interface TagVo {
  id: number;
  name: string;
  createdAt: Date | string;
  description: string;
  color?: string;
  articleCount?: number | any;
}

export interface TagInfo {
  id: number;
  name: string;
  description: string;
  articleCount: number;
  viewCount: number | string;
  createdAt: string;
}

export interface ArticleVo {
  id: number;
  title: string;
  views: number;
  content: string;
  likes: number;
  tags: string[];
  allowComment: string;
  categoryName: string;
  coverImage: string;
  createdAt: string;
  users: {
    id: number;
    username: string;
    avatar: string;
  };
}

export interface TreeNode {
  title: string;
  key: string | number;
  count?: number;
  isLeaf?: boolean;
  children?: TreeNode[];
}
